<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of loginController
 *
 * @author Богдан
 */
class loginController extends Zend_Controller_Action 
{
    public function indexAction() {
        //проверяем авторизирован ли админ
        if (Zend_auth::getInstance()->hasIdentity()) {
            //если да - редиректим на главную админки
            $this->_helper->redirector('index', 'admin');            
        }        
        $form = new Application_Form_Login();
        $this->view->form = $form;
        
        //получаем и проверяем данные из формы
        if ($this->getRequest()->isPost()) {
              $formData = $this->getRequest()->getPost();
              if ($form->isValid($formData)) {
                  //получаем адаптер подключения к БД
                  $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
                  //указываем таблицу и поля в которых следует искать
                  $authAdapter->setTableName('users')
                          ->setIdentityColumn('login')
                          ->setCredentialColumn('password');
                  //получаем введенные данные
                  $login    = $this->getRequest()->getPost('login');
                  $password = $this->getRequest()->getPost('password');
                  
                  $authAdapter->setIdentity($login)
                          ->setCredential($password);                  
                  //получаем экземпляр класса Zend_Auth
                  $auth = Zend_Auth::getInstance();
                  //делаем попытку авторизировать пользователя
                  $result = $auth->authenticate($authAdapter);
                
               //если авторизация прошла успешно
                  if ($result->isValid()) {       
                       $identity = $authAdapter->getResultRowObject();
                       $obj = new Application_Model_Login();                          
                       $role = $obj->getUserRole($identity->id);                                                        
                       //добавляем "Role"
                       $identity->role = $role['role'];                  
                       // получаем доступ к хранилищу данных Zend
                       $authStorage = $auth->getStorage();
                       // помещаем туда информацию о пользователе,
                       // чтобы иметь к ним доступ при конфигурировании Acl
                       $authStorage->write($identity);                     
                       $this->_helper->redirector('index', 'admin'); 
                  }                   
              }
        }
    }
    
    public function logoutAction() {
        Zend_Auth::getInstance()->clearIdentity();
        $this->_helper->redirector('index', 'index');
    }
}

?>
